package mx.itsc.dswII.view;

import java.util.List;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.event.ActionEvent;
import mx.its.dswII.biblioteca.bl.AutorBlLocal;
import mx.its.dswII.biblioteca.modelo.Autor;

/**
 *
 * @author Lenovo-user
 */
@ManagedBean
@SessionScoped
public class AuthorBean {

    //Llamadas a los EJB's
    @EJB
    private AutorBlLocal autorBl;
    //Variables (Propiedades)
    private List<Autor> lista;
    private Autor author;
    private String accion, desicion;

    public AuthorBean() {
        author = new Autor();
    }

    public List<Autor> getLista() {
        lista = autorBl.getAll();
        return lista;
    }

    public Autor getAuthor() {
        return author;
    }

    public void setAuthor(Autor author) {
        this.author = author;
    }

    //Acciones es lo ultimo en ejecutarse
//    public String prepararNuevo() {
//        author = new Autor();
//        return "AutthorCreateEdit";
//    }
    //Listeners es lo primero que se va a ejecutar y sabes datos de el como a que boton o componente se le dio click 
    // a que hora, donde, quien 
    public void prepararNuevo(ActionEvent evt) {
        accion = "Nuevo";
        author = new Autor();
    }

    public void prepararEditar(ActionEvent evt) {
        accion = "Editar";
        System.out.println(evt.getComponent().getClientId());
        /*String arr[]=evt.getComponent().getClientId().split(":");
         String id=arr[2];
         int index=Integer.parseInt(id);
         */
        int index = Integer.parseInt(evt.getComponent().getClientId().split(":")[2]);
        author = lista.get(index);
    }

    public void prepararEliminar(ActionEvent evt) {
        accion = "Eliminar";
        System.out.println(evt.getComponent().getClientId());
        int index = Integer.parseInt(evt.getComponent().getClientId().split(":")[2]);
        author = lista.get(index);
    }

    public String procesarAccion() {
        if (accion.equalsIgnoreCase("Nuevo")) {
            autorBl.register(author);

        } else {
            if (accion.equalsIgnoreCase("Editar")) {
                autorBl.modify(author);
            } else {
                if (accion.equalsIgnoreCase("Eliminar")) {
                    autorBl.remove(author);
                }
            }
        }

        accion = "";
        return "AuthorList";

    }

    public String procesarCancelar() {

        if (desicion.equalsIgnoreCase("CreateEdit")) {
            
        } else {
            if (desicion.equalsIgnoreCase("Confirm")) {
            }
        }
        desicion = "";
        return "AuthorList";
    }
}
